"""
检查数据库脚本
创建时间：2025-09-21
作者：开发团队
目的：检查数据库中的用户信息
"""

import sys
import os

# 添加项目路径
sys.path.append(os.path.join(os.path.dirname(__file__), 'backend', 'src'))

# 设置环境变量
os.environ['ENVIRONMENT'] = 'development'

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from backend.src.models.user import User
from backend.src.core.config import get_config

def check_database():
    """检查数据库"""
    print("检查数据库...")
    
    try:
        # 获取配置
        config = get_config()
        print(f"数据库URL: {config.DATABASE_URL}")
        
        # 创建数据库引擎
        engine = create_engine(config.DATABASE_URL, echo=False)
        
        # 创建会话
        SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
        db = SessionLocal()
        
        # 查询所有用户
        users = db.query(User).all()
        print(f"数据库中的用户数量: {len(users)}")
        
        for user in users:
            print(f"  用户: ID={user.id}, 用户名={user.username}, 角色={user.role}, 状态={user.status}")
        
        # 特别检查guard001用户
        guard_user = db.query(User).filter(User.username == "guard001").first()
        if guard_user:
            print(f"\n找到guard001用户:")
            print(f"  ID: {guard_user.id}")
            print(f"  用户名: {guard_user.username}")
            print(f"  角色: {guard_user.role}")
            print(f"  状态: {guard_user.status}")
        else:
            print(f"\n未找到guard001用户")
            
        # 特别检查以guard开头的用户
        guard_users = db.query(User).filter(User.username.like("guard%")).all()
        print(f"\n以'guard'开头的用户:")
        for user in guard_users:
            print(f"  用户: ID={user.id}, 用户名={user.username}, 角色={user.role}, 状态={user.status}")
        
        db.close()
        
    except Exception as e:
        print(f"检查数据库出错: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    check_database()